package com.abner.juc.unsafelist;
import java.util.*;

/**
 * list集合不安全
 *  ArrayList是线程不安全的,多个线程一起操作时发生异常 ConcurrentModificationException
 *  解决办法一: 换成Vector
 *  解决方式二: 将不安全的集合放进Collections.singletonList(new ArrayList<>())中去
 *  解决方式三: CopyOnWriteArrayList可以使用这个集合
 *
 * HashSet同理解决办法
 * HashMap同理解决办法  ConcurrentHashMap
 * @author Abner
 */
public class UnsafeList {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 30; i++) {
            new Thread( () -> {
                list.add(UUID.randomUUID().toString().substring(0,8));
                System.out.println(list);
            },String.valueOf(i)).start();
        }
    }
}
